//package com.gugee.tiktok.data.common.config;
//
//import org.apache.kafka.clients.consumer.ConsumerConfig;
//import org.apache.kafka.common.serialization.LongDeserializer;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.kafka.core.ConsumerFactory;
//import org.springframework.kafka.core.DefaultKafkaConsumerFactory;
//import org.springframework.stereotype.Component;
//
//import java.util.HashMap;
//import java.util.Map;
//
///**
// * Created with IntelliJ IDEA.
// * Description:
// * User: luolifeng
// * Date: 2020-10-27 11:42
// */
//@Configuration
//public class KafkaConsumerCommon {
//    @Value("${kafka.consumer.servers}")
//    private String servers;
//    @Value("${kafka.consumer.enable.auto.commit}")
//    private boolean enableAutoCommit;
//    @Value("${kafka.consumer.session.timeout}")
//    private String sessionTimeout;
//    @Value("${kafka.consumer.auto.commit.interval}")
//    private String autoCommitInterval;
//    @Value("${kafka.consumer.group.bloggerGroup.id}")
//    private String groupId;
//    @Value("${kafka.consumer.auto.offset.reset}")
//    private String autoOffsetReset;
//    @Value("${kafka.consumer.concurrency}")
//    private int concurrency;
//    @Value("${kafka.consumer.max.poll.records}")
//    private int maxPollRecords;
//    @Value("${kafka.consumer.max.poll.interval.ms}")
//    private int maxPollIntervalMs;
//
//
//    private Map<String, Object> consumerConfigsAck(Class  msgDeSerializer) {
//        Map<String, Object> propsMap = new HashMap<>();
//        propsMap.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, servers);
//        propsMap.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, false);
//        propsMap.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, LongDeserializer.class);
//        propsMap.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, msgDeSerializer);
//        propsMap.put(ConsumerConfig.GROUP_ID_CONFIG, groupId);
//        propsMap.put(ConsumerConfig.MAX_POLL_INTERVAL_MS_CONFIG, maxPollIntervalMs);
//        propsMap.put(ConsumerConfig.SESSION_TIMEOUT_MS_CONFIG, sessionTimeout);
//        propsMap.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG,autoOffsetReset);
//        propsMap.put(ConsumerConfig.MAX_POLL_RECORDS_CONFIG, maxPollRecords);
//
//        return propsMap;
//    }
//
//    public ConsumerFactory<String, String> consumerFactoryAck(Class  msgDeSerializer) {
//        return new DefaultKafkaConsumerFactory<>(consumerConfigsAck(msgDeSerializer));
//    }
//}
